package com.reservation.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reservation.entity.Message;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 留言Mapper接口
 */
@Mapper
public interface MessageMapper extends BaseMapper<Message> {
    
    /**
     * 分页查询留言列表
     *
     * @param page 分页参数
     * @return 留言列表
     */
    @Select("SELECT m.* FROM message m WHERE m.deleted = 0 ORDER BY m.create_time DESC")
    IPage<Message> selectPageList(Page<Message> page);
    
    /**
     * 根据用户ID查询留言列表
     *
     * @param page   分页参数
     * @param userId 用户ID
     * @return 留言列表
     */
    @Select("SELECT m.* FROM message m WHERE m.user_id = #{userId} AND m.deleted = 0 ORDER BY m.create_time DESC")
    IPage<Message> selectPageByUserId(Page<Message> page, @Param("userId") Long userId);
    
    /**
     * 查询未回复的留言列表
     *
     * @param page 分页参数
     * @return 未回复的留言列表
     */
    @Select("SELECT m.* FROM message m WHERE m.reply IS NULL AND m.deleted = 0 ORDER BY m.create_time DESC")
    IPage<Message> selectPageUnreplied(Page<Message> page);
}